package com.example.lib.socket;

import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import java.nio.ByteBuffer;

public class MySocketData {
        public static byte[] getHeadByte(HeadData hd){

            byte[] bs=new byte[19];
            bs[0]=9;
            bs[1]=9;
            bs[2]=9;
            bs[3]=hd.status;
            bs[4]= hd.dataType;
            bs[5]=hd.accentType;
            bs[6]=hd.clientType;
            byte[] temp;
           try {

               temp= ByteBuffer.allocate(4).putInt( hd.dataLong).array();
               bs[7]=temp[0];
               bs[8]= temp[1];
               bs[9]=temp[2];
               bs[10]=temp[3];

               temp= ByteBuffer.allocate(4).putInt( hd.clientId).array();
               bs[11]=temp[0];
               bs[12]= temp[1];
               bs[13]=temp[2];
               bs[14]=temp[3];

               temp= ByteBuffer.allocate(4).putInt( hd.fileNameLong).array();
               bs[15]=temp[0];
               bs[16]= temp[1];
               bs[17]=temp[2];
               bs[18]=temp[3];



           }catch (Exception e){
               System.out.println("client send is false ");
               e.printStackTrace();

           }


        return bs;
    }
    public static HeadData getHeadData(byte[] data){
        HeadData hd=new HeadData();
        hd.head1=data[0];
        hd.head2=data[1];
        hd.head3=data[2];
        hd.status=data[3];
        hd.dataType=data[4];
        hd.accentType=data[5];
        hd.clientType=data[6];
        byte[] temp=new byte[4];
        temp[0]=data[10];
        temp[1]=data[9];
        temp[2]=data[8];
        temp[3]=data[7];
        int result = ByteBuffer.wrap(temp).getInt();
        hd.dataLong=result;

        temp[0]=data[14];
        temp[1]=data[13];
        temp[2]=data[12];
        temp[3]=data[11];
        result = ByteBuffer.wrap(temp).getInt();
        hd.clientId=result;

        temp[0]=data[18];
        temp[1]=data[17];
        temp[2]=data[16];
        temp[3]=data[15];
        result = ByteBuffer.wrap(temp).getInt();
        hd.fileNameLong=result;

        return  hd;

    }
//    public static String getSendData(String data){
//        String s1="";
//        @SuppressWarnings("DefaultLocale")
//        String formattedString = String.format("dataType:%d|dataLong:%d|accentType:%d\n",1,data.length(),1);
//
//        s1=formattedString+data;
//
//
//        return s1;
//    }
//    public static HeadData getHeadData(byte[] data){
//        HeadData hd=new HeadData();
//        byte[] temp=new byte[data.length];
//        for (int i=0;i<data.length;i++){
//            if (data[i]==10){
//                hd.headLong=i;
//                break;
//            }else{
//                temp[i]=data[i];
//            }
//        }
//        String s1=new String(temp,0,hd.headLong);
//        String[] ss=  s1.split("\\|");
//        try {
//
//
//            for (int i = 0; i < ss.length; i++) {
//                String[] ss2 = ss[i].split(":");
//                if (ss2[0].equals("dataType")) {
//
//                    hd.dataType = Integer.parseInt(ss2[1]);
//                } else if (ss2[0].equals("dataLong")) {
//                    hd.dataLong = Integer.parseInt(ss2[1]);
//                } else if (ss2[0].equals("accentType")) {
//                    hd.accentType = Integer.parseInt(ss2[1]);
//                }else if (ss2[0].equals("headLong")) {
//                    hd.headLong = Integer.parseInt(ss2[1]);
//                }
//            }
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        return hd;
//    }

}
